package com.yang.framework.common.validator.phonenumber;

import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;

/**
 * 电话号码校验器
 */
public class PhoneNumberValidator implements ConstraintValidator<PhoneNumber, String> {
    /**
     * 初始化获取注解中的数据
     * @param constraintAnnotation  自定义注解
     */
    @Override
    public void initialize(PhoneNumber constraintAnnotation) {
        //  初始化获取注解中的数据...
    }

    /**
     * 定义校验行为
     * @param field 需要校验的字段
     * @param constraintValidatorContext    校验器的上下文环境
     * @return
     */
    @Override
    public boolean isValid(String field, ConstraintValidatorContext constraintValidatorContext) {
        //  电话号码不能为空，且必须满足指定格式
        if (field == null || !field.matches("0?(13|14|15|18|17)[0-9]{9}")) {
            //  不满足要求，校验不通过
            return false;
        }
        //  校验通过
        return true;
    }
}
